import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
// 引入 qiankun
import { registerMicroApps, start } from 'qiankun';

const app = createApp(App)
app.use(ElementPlus).use(router).mount('#app')
console.log('qiankun start')
// 注册子应用
registerMicroApps([
  {
    name: 'subapp1', // 子应用名称
    entry: '//localhost:9001', // 子应用入口
    container: '#subapp-container', // 子应用挂载节点
    activeRule: '/vue', // 子应用激活规则
  },
  // 可以继续添加其他子应用
],{
  // qiankun 生命周期钩子 - 加载前
  beforeLoad: (app) => {
    // 加载子应用前，加载进度条
    console.log("before load", app.name);
    return Promise.resolve();
  },
  // qiankun 生命周期钩子 - 挂载后
  afterMount: (app) => {
    // 加载子应用后，输出加载成功信息
    console.log("子应用 " + app.name + " 加载成功");
    return Promise.resolve();
  },
  // qiankun 生命周期钩子 - 卸载后
  afterUnmount: (app) => {
    // 子应用卸载后，输出卸载信息
    console.log("子应用 " + app.name + " 已卸载");
    return Promise.resolve();
  },
  error: (app) => {
    console.error(`${app.name} 微应用加载失败`, app);
    return Promise.resolve();
  }
});
console.log('qiankun start')
// 启动 qiankun
start();
console.log('qiankun started')

